home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / boot / netBoot.new / sun4c.md / sunromvec.h < prev   
C/C++ Source or Header  |  1990-12-19  |  3KB  |  73 lines

  1. /*
  2.  * sunromvec.h
  3.  *
  4.  * @(#)sunromvec.h 1.7 88/02/08 SMI
  5.  * Copyright (c) 1986 by Sun Microsystems, Inc.
  6.  */
  7.  
  8. #ifndef _sunromvec_h
  9. #define    _sunromvec_h
  10.  
  11. /*
  12.  * Structure set up by the boot command to pass arguments to the booted program.
  13.  */
  14. struct bootparam {
  15.   char            *bp_argv[8];     /* String arguments.                     */
  16.   char            bp_strings[100]; /* String table for string arguments.    */
  17.   char            bp_dev[2];       /* Device name.                          */
  18.   int             bp_ctlr;         /* Controller Number.                    */
  19.   int             bp_unit;         /* Unit Number.                          */
  20.   int             bp_part;         /* Partition/file Number.                */
  21.   char            *bp_name;        /* File name.  Points into "bp_strings". */
  22.   struct boottab  *bp_boottab;     /* Points to table entry for device.     */
  23. };
  24.  
  25. /*
  26.  * This table entry describes a device.  It exists in the PROM.  A pointer to
  27.  * it is passed in "bootparam".  It can be used to locate ROM subroutines for 
  28.  * opening, reading, and writing the device.  NOTE: When using this interface, 
  29.  * only ONE device can be open at any given time.  In other words, it is not
  30.  * possible to open a tape and a disk at the same time.
  31.  */
  32. struct boottab {
  33.   char           b_dev[2];        /* Two character device name.          */
  34.   int            (*b_probe)();    /* probe(): "-1" or controller number. */
  35.   int            (*b_boot)();     /* boot(bp): "-1" or start address.    */
  36.   int            (*b_open)();     /* open(iobp): "-"1 or "0".            */
  37.   int            (*b_close)();    /* close(iobp): "-"1 or "0".           */
  38.   int            (*b_strategy)(); /* strategy(iobp, rw): "-1" or "0".    */
  39.   char           *b_desc;         /* Printable string describing device. */
  40.   struct devinfo *b_devinfo;      /* Information to configure device.    */
  41. };
  42.  
  43. enum MAPTYPES { /* Page map entry types. */
  44.   MAP_MAINMEM, 
  45.   MAP_OBIO, 
  46.   MAP_MBMEM, 
  47.   MAP_MBIO,
  48.   MAP_VME16A16D, 
  49.   MAP_VME16A32D,
  50.   MAP_VME24A16D, 
  51.   MAP_VME24A32D,
  52.   MAP_VME32A16D, 
  53.   MAP_VME32A32D
  54. };
  55.  
  56. /*
  57.  * This table gives information about the resources needed by a device.  
  58.  */
  59. struct devinfo {
  60.   unsigned int      d_devbytes;   /* Bytes occupied by device in IO space.  */
  61.   unsigned int      d_dmabytes;   /* Bytes needed by device in DMA memory.  */
  62.   unsigned int      d_localbytes; /* Bytes needed by device for local info. */
  63.   unsigned int      d_stdcount;   /* How many standard addresses.           */
  64.   unsigned long     *d_stdaddrs;  /* The vector of standard addresses.      */
  65.   enum     MAPTYPES d_devtype;    /* What map space device is in.           */
  66.   unsigned int      d_maxiobytes; /* Size to break big I/O's into.          */
  67. };
  68.  
  69.  
  70. #include "openprom.h"
  71.  
  72. #endif _sunromvec_h
  73.